package com.rcpcompany.ui.flows;

/**
 * Interface for listening to flow containers life-cycle events.
 * <p>
 * This interface may be implemented by clients.
 * </p>
 * 
 * @author Tonny Madsen, The RCP Company
 */
public interface IFlowContainerListener {
	/**
	 * Notifies that the container has opened the specified director
	 * 
	 * @param director
	 *            the opened director
	 */
	public void directorOpened(IFlowDirector director);

	/**
	 * Notifies that the container has closed the specified director
	 * 
	 * @param director
	 *            the closed director
	 */
	public void directorClosed(IFlowDirector director);

	/**
	 * Notifies that the container will close all directors
	 * 
	 * @param done
	 *            <code>true</code> when done
	 */
	public void directorAllClosed(boolean done);

	/**
	 * Notifies that the container has activated the specified director.
	 * <p>
	 * The value <code>null</code> is used to designate that no director was
	 * activated - e.g. the empty page is shown.
	 * 
	 * @param director
	 *            the activated director or <code>null</code>
	 */
	public void directorActivated(IFlowDirector director);
}
